package com.gitee.swsk33.mainmodule.selector;

import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.type.AnnotationMetadata;

/**
 * 实现ImportSelector接口后，可在其中自定义条件决定是否导入特定的类
 */
public class DemoImportSelector implements ImportSelector {

	/**
	 * 自定义导入某些类的逻辑
	 *
	 * @param importingClassMetadata 表示被标注@Import注解的类的元数据信息
	 * @return 将需要导入的类的全限定名放在字符串数据返回，则会导入返回的数组中指定的类
	 */
	@Override
	public String[] selectImports(AnnotationMetadata importingClassMetadata) {
		// 打印被标注@Import的类的元数据
		System.out.println("被标注@Import的类名：" + importingClassMetadata.getClassName());
		// 直接引入第一个和第二个功能的主类
		return new String[]{
				"com.gitee.swsk33.functionone.FunctionOneApplication",
				"com.gitee.swsk33.functiontwo.FunctionTwoApplication"
		};
	}

}